<?php
/**
 * Crud Background
 *
 * @author André Coura <andreccls@gmail.com>
 * @since 28/07/2011
 */
//necessário para todas as páginas do admin (facilitador)
include("defaultAdmin.php");
require_once(PASTA_DAO."Background.class.php");
//verificação se o usuário esta logado, cado contrário, este será redirecionado para o login.
if($objUsrSession->getIdAdministrador() == 0){
	HttpUtil::vaiPara("login.php?msg=1");
}


/**
 * VERIFICAÇÃO DA TELA QUE SERÁ EXIBIDA
 */
if(!isset($_GET["id"]))
	$id = "";
else
	$id = (int)$_GET["id"];
if(!is_numeric($id) || $id == 0 || $id=="")
	$id = null;
$objCtrlSmarty->assign("id_bg",$id);
$objBackground = new Background();

if(!isset($_GET["a"]))
$_GET["a"] = "";
switch ($_GET["a"]){
	case 'form':
		if(isset($id)){
			//busco os dados do banco
			$arrCampos = $objBackground->buscaCampos($id);
			//seto no formulário os valores dos campos automaticamente
			foreach ($arrCampos as $nomeCampo => $fieldData) {
			 if($nomeCampo == "arquivo_bg"){
					$objCtrlSmarty->assign($nomeCampo."_thumb",base64_encode(serialize(array("img"=>utf8_encode($fieldData), "w"=>"415","h"=>"100", "filename" => PASTA_UPLOADS_ARQUIVOS."background/"))));
					$objCtrlSmarty->assign($nomeCampo,base64_encode(serialize(array("img"=>utf8_encode($fieldData), "w"=>"600","h"=>"400", "filename" => PASTA_UPLOADS_ARQUIVOS."background/"))));
				}else if($nomeCampo == "status_bg"){
					if($fieldData=="S")
					$objCtrlSmarty->assign("ATIVO","checked=\"checked\"");
					else
					$objCtrlSmarty->assign("INATIVO","checked=\"checked\"");
				}else
				$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
			}
		}else{
			$objCtrlSmarty->assign("ATIVO","checked=\"checked\"");
		}
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formBackgrounds.tpl"));
		break;
	case 'post':
		try{
			//validação preguiça de fazer em javascript
			$arrErros = array();
			if($_POST["titulo_bg"]=="")
				$arrErros["MENS_ERRO_NOME"] = "O Nome é obrigatório";
			if($_FILES["arquivo_bg"]["name"]=="" && $_POST["id_bg"]=="")
				$arrErros["MENS_ERRO_FILE"] = "O arquivo é obrigatório";
			//fim validação dos dados

			//se não teve erros continua com o post
			if(count($arrErros) == 0){
				$id = (int)$_POST["id_bg"];
				if(!is_numeric($id) || $id == 0 || $id=="")
					$id = null; //verificação se tem algo no id para não dar pau

				if(!isset($_POST["status_bg"]))
					$_POST["status_bg"] = "N";
				$objBackground->alterar($id,$_POST,$_FILES);
				HttpUtil::vaiPara("CrudBackgrounds.php?msg=3");
			}else{
				//loop para preencher, em caso de erro, o formulário
				foreach ($_POST as $nomeCampo => $fieldData) {
					$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
				}
				//loop para setar os lugares com os erros
				foreach ($arrErros as $nomeErro => $conteudo) {
					$objCtrlSmarty->assign($nomeErro,$conteudo);
				}
				//exibo o form aqui
				$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formBackgrounds.tpl"));
			}
		}catch(CustonException $e){
			HttpUtil::vaiPara("CrudBackgrounds.php?msg=5");
		}
		break;
	case 'excluir':
		//exclusão do arquivo físico, se existir
		try{
			$objBackground->apagaArquivoFisico($id,"arquivo_bg",PASTA_UPLOADS_ARQUIVOS."background/");
		}catch (CustonException $e ){}
		$objBackground->deletar($id);
		HttpUtil::vaiPara("CrudBackgrounds.php?msg=4");
		break;
	case 'lista':
	default:
		$arrDados = Utf8Parsers::matrizUtf8Encode($objBackground->getListaBackgrounds());
		for($i=0; $i<count($arrDados);$i++)
		$arrDados[$i]["status_bg"] = $arrDados[$i]["status_bg"]=="S"?"Ativo":"Inativo";
		$objCtrlSmarty->assign("arrBackgrounds", $arrDados);
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/listaBackgrounds.tpl"));
		break;
}


//definição da estrutura do admin <cabecalho, corpo e rodape>
$objCtrlSmarty->assign("ESTRUTURA",$objCtrlSmarty->fetch(TPLS_FILE."admin/adminEstrutura.tpl"));

//ultima coisa que deve ter no arquivo, serve para imprimir a tela
$objCtrlSmarty->display(TPLS_FILE."index.tpl");
?>